import turtle
#获取p1，p2的中点
def getMid(p1, p2):
    return (p1[0]+p2[0])/2, (p1[1]+p2[1])/2

#通过三个点绘制三角形
def draw3(p1,p2,p3,mypen):
    mypen.penup()
    mypen.goto(p1[0], p1[1])
    mypen.pendown()
    mypen.goto(p2[0], p2[1])
    mypen.goto(p3[0], p3[1])
    mypen.goto(p1[0], p1[1])
    mypen.penup()

#绘制谢尔平斯三角形
def s3(p1,p2,p3,mypen,shendu=5):
    
    draw3(getMid(p2,p3),getMid(p1,p2),getMid(p1,p3),mypen)
    if shendu>0:
        s3(p1,getMid(p1,p2),getMid(p1,p3),mypen,shendu-1)
        s3(p2,getMid(p2,p1),getMid(p2,p3),mypen,shendu-1)
        s3(p3,getMid(p3,p1),getMid(p3,p2),mypen,shendu-1)


mypen = turtle.Pen()


p1=(0,0)
p2=(500,0)
p3=(250,250*1.73)

draw3(p1,p2,p3,mypen)
s3(p1,p2,p3,mypen,shendu=5)

turtle.done()
